While automatic speech recognition accuracy has improved over the years, the recognition results of spontaneous automatic speech recognition systems still contain a large amount of errors, especially under noisy conditions. Such systems are thus frustrating for people to use, as well as costly for businesses that save or make money based upon how accurate their systems are. For example, because of incorrect automatic speech recognition on incoming telephone calls, a business has to pay backup support personnel to manually handle the calls, whereby the more accurate the speech recognition system, the less the number of support personnel needed.
Automatic speech recognition engines provide speech applications (e.g., interactive dialog systems) with a word and semantic confidence score (measure) representing an estimate of the likelihood that each word/semantic slot is correctly recognized. In order for speech applications to make reasonable decisions, such estimates need to be accurate. For example, a decision as to where to route a telephone call (versus asking the caller to repeat) may be based on the estimate exceeding a threshold value.
The confidence score is typically provided by automatic speech recognition engines, which use one fixed set of model parameters obtained by training on a generic data set for all applications. This approach has drawbacks. One drawback is that the data used to train the confidence score may differ significantly from the real data observed in a specific speech application, generally due to different language models used and different environments in which the applications are deployed. Another drawback is that some information that is available in the training data cannot be used in the generic confidence model, because such information is application-specific, and cannot be reliably estimated from the generic data set for a given application. As a result, the confidence score provided by speech recognition engines can be far from optimal for a specific application.